﻿using System;
using System.Reflection.Emit;

namespace WLCompiler.Helpers.SemanticAnalyze
{
    public enum ScopeType
    {
        Local,
        Global,
        Arg
    }

    public class Variable : UniqueObject
    {
        public Variable(ScopeType scopeType, string id)
            :base(id)
        {
            ScopeType = scopeType;
        }

        public Variable(ScopeType scopeType, string id, Type type)
            :this(scopeType, id)
        {
            Type = type;
        }

        public ScopeType ScopeType { get; private set; }

        public Type Type { get; private set; }

        public object VariableReference { get; set; }
    }
}
